/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ecom.login;
import util.Util;
import ecom.login.LoginAware;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
import java.util.Map;

/**
 *
 * @author Miko
 */
public class LoginInterceptor implements Interceptor {

    public String intercept(ActionInvocation actionInvocation) throws Exception {

// récupération des attributs de portée session
        Map<String, Object> session = actionInvocation.getInvocationContext().getSession();
// récupération de la valeur de l'attribut correspondant au login
        String login = (String) session.get(Util.LOGINATTRIBUTE);
        if (login == null) // n'est pas connecté
        {
            return Action.LOGIN;
        } else // est connecté donc invocation de l'action et retour du résultat
        {
            Action action = (Action) actionInvocation.getAction();
            if (action instanceof LoginAware) {
                ((LoginAware) action).setLogin(login);
            }
            return actionInvocation.invoke();
        }
    }

    public void destroy() {
    }

    public void init() {
    }   
}
